package com.ims.core.doc.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ims.common.annotation.Excel;
import com.ims.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 抵扣发票勾选抵扣申请对象 t_in_deduction_apply
 *
 * @author IMS
 * @date 2024-12-03
 */
public class TInDeductionApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 抵扣ID */
    @Excel(name = "抵扣ID")
    private String deductionId;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String custId;

    /** 客户公司代码 */
    private String siteCode;

    /** 客户公司 */
    @Excel(name = "客户公司")
    private String siteName;

    /** 申请编码 */
    @Excel(name = "申请编码")
    private String applyCode;

    /** 税号 */
    @Excel(name = "税号")
    private String taxNo;

    /** 税款所属期 */
    @Excel(name = "税款所属期")
    private String period;

    /** 申请发票数 */
    @Excel(name = "申请发票数")
    private Integer applyQty;

    /** 申请抵扣金额 */
    @Excel(name = "申请抵扣金额")
    private BigDecimal applyAmount;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applyBy;

    /** 成功标志 */
    @Excel(name = "成功标志")
    private String success;

    /** 申请错误码 */
    @Excel(name = "申请错误码")
    private String code;

    /** 申请错误信息 */
    @Excel(name = "申请错误信息")
    private String message;

    /** 申请类型 */
    @Excel(name = "申请类型")
    private String applyType;

    /** 申请类型 */
    @Excel(name = "申请类型")
    private String applyTypeName;

    /** 申请认证类型代码 */
    @Excel(name = "申请认证类型代码")
    private String applyCertificationType;

    /** 申请认证类型 */
    @Excel(name = "申请认证类型")
    private String applyCertificationTypeName;

    /** 抵扣发票勾选抵扣申请明细信息 */
    private List<TInDeductionApplyEntry> tInDeductionApplyEntryList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDeductionId(String deductionId)
    {
        this.deductionId = deductionId;
    }

    public String getDeductionId()
    {
        return deductionId;
    }
    public void setCustId(String custId)
    {
        this.custId = custId;
    }

    public String getCustId()
    {
        return custId;
    }
    public void setSiteCode(String siteCode)
    {
        this.siteCode = siteCode;
    }

    public String getSiteCode()
    {
        return siteCode;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }
    public void setApplyCode(String applyCode)
    {
        this.applyCode = applyCode;
    }

    public String getApplyCode()
    {
        return applyCode;
    }
    public void setTaxNo(String taxNo)
    {
        this.taxNo = taxNo;
    }

    public String getTaxNo()
    {
        return taxNo;
    }
    public void setPeriod(String period)
    {
        this.period = period;
    }

    public String getPeriod()
    {
        return period;
    }
    public void setApplyQty(Integer applyQty)
    {
        this.applyQty = applyQty;
    }

    public Integer getApplyQty()
    {
        return applyQty;
    }
    public void setApplyAmount(BigDecimal applyAmount)
    {
        this.applyAmount = applyAmount;
    }

    public BigDecimal getApplyAmount()
    {
        return applyAmount;
    }
    public void setApplyTime(Date applyTime)
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime()
    {
        return applyTime;
    }
    public void setApplyBy(String applyBy)
    {
        this.applyBy = applyBy;
    }

    public String getApplyBy()
    {
        return applyBy;
    }
    public void setSuccess(String success)
    {
        this.success = success;
    }

    public String getSuccess()
    {
        return success;
    }
    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }
    public void setMessage(String message)
    {
        this.message = message;
    }

    public String getMessage()
    {
        return message;
    }

    public List<TInDeductionApplyEntry> getTInDeductionApplyEntryList()
    {
        return tInDeductionApplyEntryList;
    }

    public void setTInDeductionApplyEntryList(List<TInDeductionApplyEntry> tInDeductionApplyEntryList)
    {
        this.tInDeductionApplyEntryList = tInDeductionApplyEntryList;
    }

    public String getApplyType() {
        return applyType;
    }

    public void setApplyType(String applyType) {
        this.applyType = applyType;
    }

    public String getApplyTypeName() {
        return applyTypeName;
    }

    public void setApplyTypeName(String applyTypeName) {
        this.applyTypeName = applyTypeName;
    }

    public String getApplyCertificationType() {
        return applyCertificationType;
    }

    public void setApplyCertificationType(String applyCertificationType) {
        this.applyCertificationType = applyCertificationType;
    }

    public String getApplyCertificationTypeName() {
        return applyCertificationTypeName;
    }

    public void setApplyCertificationTypeName(String applyCertificationTypeName) {
        this.applyCertificationTypeName = applyCertificationTypeName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deductionId", getDeductionId())
            .append("custId", getCustId())
            .append("siteCode", getSiteCode())
            .append("siteName", getSiteName())
            .append("applyCode", getApplyCode())
            .append("taxNo", getTaxNo())
            .append("period", getPeriod())
            .append("applyQty", getApplyQty())
            .append("applyAmount", getApplyAmount())
            .append("applyTime", getApplyTime())
            .append("applyBy", getApplyBy())
            .append("success", getSuccess())
            .append("code", getCode())
            .append("message", getMessage())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("tInDeductionApplyEntryList", getTInDeductionApplyEntryList())
            .toString();
    }
}
